// NC17.最长回文子串
// https://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af  [简单]
// 暴力
// 对于长度为n的一个字符串A（仅包含数字，大小写英文字母），请设计一个高效算法，计算其中最长回文子串的长度。
#include <algorithm>
#include <iostream>
#include <map>
#include <memory>
#include <sstream>
#include <stack>
#include <string>
#include <vector>
using namespace std;

class Solution {
 public:
  /**
   * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
   *
   *
   * @param A string字符串
   * @return int整型
   */
  //  123454321
  //  i   i
  bool isPalindrome(const string& str) {
    for (int i = 0; i < str.length() / 2; i++) {
      if (str[i] != str[str.length() - 1 - i]) {
        return false;
      }
    }
    return true;
  }

  // ccbcabaabba
  // 01234567890
  // i       11
  //    i    4
  //      i   2

  int getLongestPalindrome(string A) {
    // write code here
    int maxLen = 0;
    for (int i = 0; i < A.length(); i++) {
      for (int len = A.length() - i; len > 0; len--) {
        string sub = A.substr(i, len);
        bool ret = isPalindrome(sub);
        if (ret) {
          maxLen = max(maxLen, len);
        }
      }
    }
    return maxLen;
  }
};

int main_nc17() {
  Solution sol;
  int n = sol.getLongestPalindrome("ccbcabaabba");
  printf("%d\n", n);
  return 0;
}
